<!DOCTYPE html>
<html lang="en" class="js csstransforms3d">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta name="generator" content="Hugo 0.20.7" />
    <meta name="description" content="">


    <link rel="shortcut icon" href="http://shardingjdbc.io/document/legacy/2.x/en/img/favicon.png" type="image/x-icon" />

    
    <title>Roadmap</title>
    <link href="http://ovfotjrsi.bkt.clouddn.com/docs/css/nucleus.css" rel="stylesheet">
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <link href="http://ovfotjrsi.bkt.clouddn.com/docs/css/theme.css" rel="stylesheet">
    <link href="http://ovfotjrsi.bkt.clouddn.com/docs/css/hugo-theme.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
    <style type="text/css">:root #header + #content > #left > #rlblock_left
    {display:none !important;}</style>
    <link rel="stylesheet" href="http://cdn.bootcss.com/highlight.js/9.8.0/styles/monokai-sublime.min.css">
<link rel="stylesheet" href="http://ovfotjrsi.bkt.clouddn.com/docs/css/style.css">
  </head>
  <body class="" data-url="/03-design/roadmap/">
    
    <nav id="sidebar">
  <div id="header-wrapper">
    <div id="header">
      <img src="http://ovfotjrsi.bkt.clouddn.com/docs/img/sharding-jdbc.png" />
    </div>
</div>
  <div class="highlightable">
    <ul class="topics">
      
        
        
          
          
            
          
        
          
          
            
          
        
          
          
            
          
        
          
          
            
          
        
        
        
          
        
          
        
          
        
          
        
      
      
      
      

      
      
      
        
          
          
            
          
        
      
      
      

      <li class="dd-item  " data-nav-id="/00-overview/">
        <a href="http://shardingjdbc.io/document/legacy/2.x/en/00-overview/">
          <span>
            
              <b>0. </b>
            
             Overview
            
           </span>
        </a>
        
        <ul>
          
            <li class="dd-item " data-nav-id="/00-overview/intro/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/00-overview/intro/">
                <span>Brief Introduction     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/00-overview/news/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/00-overview/news/">
                <span>News     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/00-overview/contribution/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/00-overview/contribution/">
                <span>Contribute Code     </i></span>
              </a>
            </li>
          
        </ul>
        
      </li>
      
      
      

      
      
      
        
          
          
            
          
        
      
      
      

      <li class="dd-item  " data-nav-id="/01-start/">
        <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/">
          <span>
            
              <b>1. </b>
            
             Introduction
            
           </span>
        </a>
        
        <ul>
          
            <li class="dd-item " data-nav-id="/01-start/quick-start/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/quick-start/">
                <span>Quick Start     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/code-demo/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/code-demo/">
                <span>Usage Example     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/faq/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/faq/">
                <span>FAQ     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/features/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/features/">
                <span>Feature List     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/limitations/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/limitations/">
                <span>Use Limits     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/sql-supported/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/sql-supported/">
                <span>The list of available SQL syntax     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/01-start/stress-test/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/01-start/stress-test/">
                <span>The performance-test report     </i></span>
              </a>
            </li>
          
        </ul>
        
      </li>
      
      
      

      
      
      
        
          
          
            
          
        
      
      
      

      <li class="dd-item  " data-nav-id="/02-guide/">
        <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/">
          <span>
            
              <b>2. </b>
            
             User Manual
            
           </span>
        </a>
        
        <ul>
          
            <li class="dd-item " data-nav-id="/02-guide/concepts/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/concepts/">
                <span>Basic Concepts      </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/sharding/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/sharding/">
                <span>Sharding     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/master-slave/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/master-slave/">
                <span>Read-write splitting     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/config_domain/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/config_domain/">
                <span>Domain Model Configuration     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/configuration/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/configuration/">
                <span>Configuration     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/orchestration/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/orchestration/">
                <span>Orchestration     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/hint-sharding-value/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/hint-sharding-value/">
                <span>Mandatory Routing     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/key-generator/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/key-generator/">
                <span>Distributed Primary key     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/transaction/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/transaction/">
                <span>Transaction Support     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/subquery/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/subquery/">
                <span>The Pagination and subquery     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/test-framework/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/test-framework/">
                <span>Test Engine     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/apm/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/apm/">
                <span>APM     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/02-guide/sharding-jdbc-server/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/02-guide/sharding-jdbc-server/">
                <span>Sharding-JDBC-Server     </i></span>
              </a>
            </li>
          
        </ul>
        
      </li>
      
      
      

      
      
      
        
          
          
            
          
        
      
      
      

      <li class="dd-item  parent" data-nav-id="/03-design/">
        <a href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/">
          <span>
            
              <b>3. </b>
            
             Design Plan
            
           </span>
        </a>
        
        <ul>
          
            <li class="dd-item " data-nav-id="/03-design/architecture/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/architecture/">
                <span>Architecture Design     </i></span>
              </a>
            </li>
          
            <li class="dd-item " data-nav-id="/03-design/module/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/module/">
                <span>Module Declaration     </i></span>
              </a>
            </li>
          
            <li class="dd-item active" data-nav-id="/03-design/roadmap/">
              <a href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/roadmap/">
                <span>Roadmap     </i></span>
              </a>
            </li>
          
        </ul>
        
      </li>
      
      
    </ul>
    <hr>
     
  </div>
</nav>

        <section id="body">
        <div id="overlay"></div>

        <div class="padding highlightable">

            <div id="top-bar">
              
              <div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
                  <span id="sidebar-toggle-span">
                      <a href="#" id="sidebar-toggle" data-sidebar-toggle="">
                        <i class="fa fa-bars"></i>
                      </a>
                  </span>
                
                <span id="toc-menu"><a href=""><i class="fa fa-list-alt"></i></a></span>
                
                
                  
                  
                  
                    
                    
                <a href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/" itemprop="url"><span itemprop="title">Design Plan</span></a> <i class="fa fa-angle-right"></i>
                    
                  
                
                <span itemprop="title"> Roadmap</span>
              </div>
              
                  <div class="progress">
    <div class="wrapper">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#completed">Completed</a>
<ul>
<li><a href="#database">DATABASE</a></li>
<li><a href="#dql">DQL</a></li>
<li><a href="#dml">DML</a></li>
<li><a href="#ddl">DDL</a></li>
<li><a href="#configuration">Configuration</a></li>
<li><a href="#sql-parser">SQL Parser</a></li>
<li><a href="#sql-rewrite">SQL Rewrite</a></li>
<li><a href="#sql-router">SQL Router</a></li>
<li><a href="#result-merger">Result Merger</a></li>
<li><a href="#sharding-databases-and-tables">Sharding Databases and Tables</a></li>
<li><a href="#read-write-splitting">Read-write splitting</a></li>
<li><a href="#distributed-primary-key">Distributed Primary Key</a></li>
<li><a href="#b-a-s-e-transaction">B.A.S.E Transaction</a></li>
</ul></li>
<li><a href="#planning">Planning</a>
<ul>
<li><a href="#configuration-1">Configuration</a></li>
<li><a href="#governance">Governance</a></li>
</ul></li>
<li><a href="#todo">TODO</a>
<ul>
<li><a href="#dql-1">DQL</a></li>
<li><a href="#dml-1">DML</a></li>
<li><a href="#ddl-1">DDL</a></li>
<li><a href="#enhanced-sql-parser">Enhanced SQL Parser</a></li>
<li><a href="#enhanced-b-a-s-e-transaction">Enhanced B.A.S.E Transaction</a></li>
<li><a href="#devops-tools">Devops Tools</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
    </div>
</div>

              

            </div>
            
              <div id="body-inner">
                
                <h1>Roadmap</h1>
                



<h2 id="completed">Completed</h2>

<h3 id="database">DATABASE</h3>

<ol>
<li>MySQL</li>
<li>Oracle</li>
<li>SQLServer</li>
<li>PostgreSQL</li>
</ol>

<h3 id="dql">DQL</h3>

<ol>
<li>Simple</li>
<li>JOIN</li>
<li>BETWEEN</li>
<li>IN</li>
<li>ORDER BY</li>
<li>GROUP BY</li>
<li>Aggregation</li>
<li>LIMIT, rownum, TOP</li>
<li>Simple Sub Query</li>
</ol>

<h3 id="dml">DML</h3>

<ol>
<li>INSERT INTO</li>
<li>INSERT SET</li>
<li>UPDATE</li>
<li>DELETE</li>
</ol>

<h3 id="ddl">DDL</h3>

<ol>
<li>CREATE</li>
<li>ALTER</li>
<li>DROP</li>
<li>TRUNCATE</li>
</ol>

<h3 id="configuration">Configuration</h3>

<ol>
<li>Java API</li>
<li>Spring Namespace</li>
<li>Yaml</li>
<li>Read-write splitting Independent</li>
<li>Configuration Concentrated</li>
<li>Configuration Dynamic</li>
</ol>

<h3 id="sql-parser">SQL Parser</h3>

<ol>
<li>Lexer Analysis</li>
<li>Parser Analysis</li>
</ol>

<h3 id="sql-rewrite">SQL Rewrite</h3>

<ol>
<li>Correctness Rewrite</li>
<li>Polish Rewriting</li>
</ol>

<h3 id="sql-router">SQL Router</h3>

<ol>
<li>Hint Router</li>
<li>Simple Router</li>
<li>Cartesian Product Router</li>
</ol>

<h3 id="result-merger">Result Merger</h3>

<ol>
<li>Stream Merger</li>
<li>Memory Merger</li>
<li>Decorator Merger</li>
</ol>

<h3 id="sharding-databases-and-tables">Sharding Databases and Tables</h3>

<ol>
<li>Sharding Databases</li>
<li>Sharding Tables</li>
<li>Default Datasources</li>
</ol>

<h3 id="read-write-splitting">Read-write splitting</h3>

<ol>
<li>Read-write splitting</li>
<li>Consistent guarantees for the same thread and the same database connection</li>
<li>Hint-based forced master routing</li>
</ol>

<h3 id="distributed-primary-key">Distributed Primary Key</h3>

<ol>
<li>JDBC integration</li>
<li>Distributed primary key policy interface</li>
<li>The distributed primary key algorithm based on snowflake is implemented</li>
</ol>

<h3 id="b-a-s-e-transaction">B.A.S.E Transaction</h3>

<ol>
<li>Best Effort Delivery</li>
</ol>

<h2 id="planning">Planning</h2>

<h3 id="configuration-1">Configuration</h3>

<ol>
<li>Read-write splitting to be independent</li>
<li>Binding Strategy improvement</li>
<li>Centralized</li>
<li>Dynamic</li>
</ol>

<h3 id="governance">Governance</h3>

<ol>
<li>HealthCheck and discovery of datasources</li>
<li>Dynamic switching of datasources</li>
<li>Flow control</li>
</ol>

<h2 id="todo">TODO</h2>

<h3 id="dql-1">DQL</h3>

<ol>
<li>DISTINCT</li>
<li>HAVING</li>
<li>OR</li>
<li>UNION, UNION ALL</li>
<li>Calculate Expression, eg: SUM(pv) / COUNT(uv)</li>
<li>Complicated Sub Query</li>
<li>SQL Hint</li>
</ol>

<h3 id="dml-1">DML</h3>

<ol>
<li>INSERT INTO VALUES (xxx), (xxx)</li>
<li>UPDATE Multiple Tables</li>
<li>DELETE Multiple Tables</li>
</ol>

<h3 id="ddl-1">DDL</h3>

<ol>
<li>CREATE VIEW</li>
<li>CREATE INDEX</li>
<li>CREATE OR REPLACE</li>
</ol>

<h3 id="enhanced-sql-parser">Enhanced SQL Parser</h3>

<ol>
<li>Batch Parser</li>
<li>Redundant Brackets</li>
<li>Specify SQL Hint by SQL comments</li>
</ol>

<h3 id="enhanced-b-a-s-e-transaction">Enhanced B.A.S.E Transaction</h3>

<ol>
<li>TCC</li>
</ol>

<h3 id="devops-tools">Devops Tools</h3>

<ol>
<li>Dictionary table replication broadcasting</li>
<li>Dynamic Dilatancy</li>
</ol>


      
      
      </div>
    </div>

    

    <div id="navigation">
        
        <a class="nav nav-prev" href="http://shardingjdbc.io/document/legacy/2.x/en/03-design/module/"> <i class="fa fa-chevron-left"></i></a>
        <a class="nav nav-next" href="http://shardingjdbc.io/document/legacy/2.x/en/00-overview/" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
    </div>

    </section>
    <div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
      <div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
    </div>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/clipboard.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/perfect-scrollbar.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/perfect-scrollbar.jquery.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/jquery.sticky-kit.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/featherlight.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/html5shiv-printshiv.min.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/highlight.pack.js"></script>
    <script>hljs.initHighlightingOnLoad();</script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/learn.js"></script>
    <script src="http://ovfotjrsi.bkt.clouddn.com/docs/js/hugo-learn.js"></script>
    <script src="http://cdn.bootcss.com/highlight.js/9.8.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

  </body>
</html>

